package com.qianli.cashmama.trade.client.snapshot;

import com.fqgj.common.api.Response;
import com.fqgj.xjd.user.client.response.*;
import com.qianli.cashmama.trade.client.snapshot.request.KycUpdateRequest;
import com.qianli.cashmama.trade.client.snapshot.request.PhotoUrlRequest;
import com.qianli.cashmama.trade.client.snapshot.request.UserSnapUpdateRequest;
import com.qianli.cashmama.trade.client.snapshot.response.UserSnapInfoResponse;

import java.util.List;
import java.util.Map;

/**
 * Created with IntelliJ IDEA.
 * User: sm
 * Date: 2017/8/14
 * Time: 下午5:41
 */
public interface UserTradeSnapshotService {


    /**
     * 社会联系人
     *
     * @param tradeNo
     * @return
     */
    Response<UserSocialContact> getUserSocialContactByTradeNo(String tradeNo);


    /**
     * 用户信息
     *
     * @param tradeNo
     * @return
     */
    Response<UserInfo> getUserInfoByTradeNo(String tradeNo);

    /**
     * 额度
     *
     * @param tradeNo
     * @return
     */
    Response<UserQuotaResponse> getQuota(String tradeNo);

    /**
     * 注册信息
     *
     * @param tradeNo
     * @return
     */
    Response<UserBehaviorRegister> getRegisterInfo(String tradeNo);

    /**
     * 人脸识别
     *
     * @param tradeNo
     * @return
     */
    Response<List<UserAuthFaceRecognition>> getFaceRecognitionListByTradeNo(String tradeNo);


    /**
     * 银行卡信息
     *
     * @param tradeNo
     * @return
     */
    Response<UserBankInfo> getByTradeNo(String tradeNo);

    /**
     * @param tradeNo
     * @return
     */
    Response<Map<String, String>> getUserLatestWifiNameMapByTradeNo(String tradeNo);

    /**
     * @param tradeNo
     * @return
     */
    Response<UserSnapInfoResponse> getTradeUserSnapInfo(String tradeNo);

    /**
     * 更新交易快照图片路径
     *
     * @param tradeNo
     * @param type
     * @param photoUrlRequest
     * @return
     * @see com.qianli.cashmama.trade.client.snapshot.UserTradeSnapshotService#updateTradeUserSnapKycAndPan
     */
    @Deprecated
    Response updateTradeUserSnapInfoUrl(String tradeNo, String type, PhotoUrlRequest photoUrlRequest);

    /**
     * 更新交易快照kyc和pan图片信息
     *
     * @param tradeNo
     * @param kycUpdateRequest
     * @return
     */
    Response updateTradeUserSnapKycAndPan(String tradeNo, KycUpdateRequest kycUpdateRequest);

    /**
     * 更新交易快照基础信息(目前只更新地址)
     *
     * @param tradeNo
     * @param userSnapUpdateRequest
     * @return
     */
    Response updateTradeUserSnapBaseInfo(String tradeNo, UserSnapUpdateRequest userSnapUpdateRequest);
}
